﻿namespace Resharper.Abstractions.Actions
{
  using System;
  using JetBrains.Annotations;
  using JetBrains.ReSharper.Psi.CSharp;

  /// <summary>Defines the <see cref="Factory"/> class.</summary>
  public class Factory
  {
    #region Constructors and Destructors

    /// <summary>Initializes a new instance of the <see cref="Factory"/> class.</summary>
    /// <param name="factory">The factory.</param>
    internal Factory([NotNull] CSharpElementFactory factory)
    {
      if (factory == null)
      {
        throw new ArgumentNullException("factory");
      }

      this.InternalFactory = factory;
    }

    #endregion

    #region Properties

    /// <summary>The factory field.</summary>
    [NotNull]
    internal CSharpElementFactory InternalFactory { get; private set; }

    #endregion
  }
}